#import <Foundation/Foundation.h>
#import "PersistentDataType.h"
#import "GPSLocation.h"
#import "Location.h"

/**
 * A PointOfInterest is an object representing a single point of 
 * interest.
 *
 * Conforms to the PersistentDataType protocol.
 *
 * @author      Justin Hollander
 * @version     0.7.0
 * @since       0.1.0
 * @see         PersistentDataType
 */
@interface PointOfInterest : Location<PersistentDataType> {
	NSString* category;         // the category of the point of interest
	NSString* overlayImagePath; // the path to the overlay image
	BOOL      isSelected;       // whether it is selected
	
}

@property (nonatomic, retain) NSString* category;
@property (nonatomic, retain) NSString* overlayImagePath;
@property BOOL isSelected;

/**
 * Initialize the point of interest with given information.
 *
 * @param nm        the name of the point of interest
 * @param location  location of the point of interest
 * @param cat       the category of the point of interest
 * @return          the initialized point of interest with details
 */
-(id)   initWithDetails:(NSString*)nm point:(GPSLocation*)location 
			   category:(NSString*)cat 
				overlay:(NSString*)pinOverlay 
			   selected:(BOOL)selectedState;

/**
 * Initialize the point of interest given another one.
 *
 * @param poi  the other point of interest with which to initialize
 * @return     the initialized point of interest 
 */
-(id)   initWithPOI:(PointOfInterest*)poi;

@end
